home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
PROGENV
/
OStruBrowser.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-09
|
3KB
|
105 lines
#ifndef OStruBrowser_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define OStruBrowser_First
#include "GraphView.h"
#include "EtPeTool.h"
class MenuBar;
class Zoomer;
class Menu;
//---- Object Structure Browser ------------------------------------------------
class PeObjectStructureView: public GraphView {
Object *currentOp;
Object *rootOp;
bool lines;
bool varNames;
private:
void SynchSelection();
public:
MetaDef(PeObjectStructureView);
PeObjectStructureView(EvtHandler*);
~PeObjectStructureView();
Object *GetRoot();
VObject *NodeAsVObject(Object*);
Iterator *MakeSubPartsIter(Object*);
Command *NodeSelected(VObject*, int cl);
Command *DoMenuCommand(int cmd);
void DoSetupMenu(Menu *menu);
void SetSelection(VObject *gp);
//---- queries
bool CheckObject(Object*);
void EvtHandlers(Object*);
void Containers(Object*);
void Dependents(Object*);
void References(Object*);
void Pointers(Object*);
void ShowObject(Object*);
void ToggleShowLines();
void LoadETGraph(Object *root);
};
//---- ObjectBrowser ----------------------------------------------------
class PeObjectBrowser: public EtPeTool {
static PeObjectBrowser *objBrowser;
PeObjectStructureView *osv;
Zoomer *zoomer;
public:
MetaDef(PeObjectBrowser);
PeObjectBrowser(Manager *m);
~PeObjectBrowser();
void ShowObject(Object *op);
Point GetInitialWindowSize();
VObject *DoMakeContent();
MenuBar *DoMakeMenuBar();
Command *DoMenuCommand(int cmd);
void DoSetupMenu(Menu *mp);
static void Spawn(Manager *m, Object *op);
static void ShowObject(Manager *m, Object *op);
};
//---- LabeledGraphReference ------------------------------------------------------------
class PeLabeledGraphReference: public GraphReference {
SeqCollection *labels;
public:
PeLabeledGraphReference(GraphView *, Object *op, Collection *nodes,
SeqCollection *labels, Ink *i, int width= 2, bool free= FALSE);
~PeLabeledGraphReference();
void DrawConnection(int n, VObject *from, VObject *to);
};
//---- NestedIter: iterate over a 0 terminated variable argument list of Objects
// expanding Collections
class PeNestedIter : public Iterator {
Iterator *it, *subIter;
Collection *cont;
bool free;
public:
PeNestedIter(Object *, Object *, ...);
PeNestedIter(Collection *, bool free);
~PeNestedIter();
Object *operator()();
Collection *Coll();
void Reset();
};
#endif